<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
 * 模块生成器
 */
class sdf_gii extends SDF_Controller {

    /**
     * 模块生成器
     */
    public function index()
    {
      //  print_r($this->uri->uri_string());
        $this->_error('你访问的插件或者模块不存在！<br/><a style="color:red" href="'.__URL__.'/generate/'.$this->uri->uri_string().'" target="_blank">点击此处，生成该模块</a>');
        echo 'sdf.index';return;
        $this->load->test();
        $this->load->model('admin/admin_user_model');
        $this->admin_user_model->load->test();
        $this->load->view($this->D.$this->C.'/'.$this->M);
    }

    /**
     * gii生成插件控制台
     * @param $modules
     * @param $class
     */
    public function generate($modules,$class){
        //生成插件目录结构入库
        if(!is_dir(MODULESPATH.$modules)){
            echo '插件'.$modules.'不存在，点击此处：<a style="color:red" href="'.__URL__.'/generate_modules/'.$modules.'" target="_blank">生成插件目录结构</a>';
        }else{
            echo '插件“'.$modules.'”已经存在';
        }
        echo '<br/>';

        //生成控制器
        if(!is_file(MODULESPATH.$modules.'/controllers/'.$class.'.php')){
            echo '模块'.$class.'不存在，点击此处：<a style="color:red" href="'.__URL__.'/generate_controller/'.$modules.'/'.$class.'" target="_blank">生成默认模块功能</a>';
        }else{
            echo '模块“'.MODULESPATH.$modules.'/controllers/'.$class.'.php”已经存在';
        }
        echo '<br/>';

        //生成数据操作模型
        if(!is_file(MODULESPATH.$modules.'/models/'.$class.'_model.php')){
            echo '模型'.$class.'不存在，点击此处：<a style="color:red" href="'.__URL__.'/generate_models/'.$modules.'/'.$class.'" target="_blank">生成默认模型</a>';
        }else{
            echo '模型“'.MODULESPATH.$modules.'/models/'.$class.'_model.php”已经存在';
        }
        echo '<br/>';

        //生成视图
        if(!is_dir(MODULESPATH.$modules.'/views/'.$class)){
            echo '视图'.MODULESPATH.$modules.'/views/'.$class.'不存在，点击此处：<a style="color:red" href="'.__URL__.'/generate_values/'.$modules.'/'.$class.'" target="_blank">生成默认视图</a>';
        }else{
            echo '视图“'.MODULESPATH.$modules.'/views/'.$class.'”已经存在,点击此处：<a style="color:red" href="'.__URL__.'/generate_values/'.$modules.'/'.$class.'" target="_blank">重新生成</a>';
        }
        echo '<br/>';

    }
    public function generate_values($modules,$class){
        //$this->load->model('sdf_gii');
        $this->load->model($this->C.'_model',"model");
        $field_data = $this->model->_from($class)->_field_data();

        //print_r($field_data);exit;
        $primary = $this->model->_from($class)->_get_pk();//主键
        $data = array(
            'views_name' => $class,
            'primary' =>$primary,
            'field_data' =>$field_data,
        );
        $views_index_str = $this->load->view('sdf_gii/sdf_gii_views_index_template', $data, true);
        if(is_writable(MODULESPATH.$modules.'/views/') and !is_dir(MODULESPATH.$modules.'/views/'.$class) and @mkdir(MODULESPATH.$modules.'/views/'.$class)){
            echo MODULESPATH.$modules.'/views/'.$class."：目录生成成功!<br/>";
        }else{
            echo MODULESPATH.$modules.'/views/'.$class."：目录生成失败，后面的生成无法完成，请确定有生成权限!如果目录已存在也会出现次提示。<br/>";
        }


        //生成列表模板
        if(!is_file(MODULESPATH.$modules.'/views/'.$class.'/index.php')  and file_put_contents(MODULESPATH.$modules.'/views/'.$class.'/index.php',$views_index_str )){
            echo MODULESPATH.$modules.'/views/'.$class.'/index.php'."：文件生成成功!<br/>";
        }else{
            echo MODULESPATH.$modules.'/views/'.$class.'/index.php'."：文件生成失败!文件不可写或者已经存在。请复制以下内容手动创建。<br/><textarea>$views_index_str </textarea><br/>";
        }

        //生成添加模板
        $views_add_str = $this->load->view('sdf_gii/sdf_gii_views_add_template', $data, true);
        if(!is_file(MODULESPATH.$modules.'/views/'.$class.'/add.php')  and file_put_contents(MODULESPATH.$modules.'/views/'.$class.'/add.php',$views_add_str)){
            echo MODULESPATH.$modules.'/views/'.$class.'/add.php'."：文件生成成功!<br/>";
        }else{
            echo MODULESPATH.$modules.'/views/'.$class.'/add.php'."：文件生成失败!文件不可写或者已经存在。请复制以下内容手动创建。<br/><textarea>".htmlentities($views_add_str)."</textarea><br/>";
        }
        //生成编辑模板
        $views_edit_str = $this->load->view('sdf_gii/sdf_gii_views_edit_template', $data, true);
        if(!is_file(MODULESPATH.$modules.'/views/'.$class.'/edit.php')  and file_put_contents(MODULESPATH.$modules.'/views/'.$class.'/edit.php',$views_edit_str)){
            echo MODULESPATH.$modules.'/views/'.$class.'/edit.php'."：文件生成成功!<br/>";
        }else{
            echo MODULESPATH.$modules.'/views/'.$class.'/edit.php'."：文件生成失败!文件不可写或者已经存在。请复制以下内容手动创建。<br/><textarea>".htmlentities($views_edit_str)."</textarea><br/>";
        }
    }
    /**
     * 生成模型
     * @param $modules
     * @param $class
     */
    public function generate_models($modules,$class){
        $data = array(
            'model_name' => $class,
        );
        $model_str = $this->load->view('sdf_gii/sdf_gii_models_template', $data, true);
        //echo MODULESPATH.$modules.'/models/'.$class.'.php';exit;
        if(is_writable(MODULESPATH.$modules.'/models/') and !is_file(MODULESPATH.$modules.'/models/'.$class.'_model.php') and file_put_contents(MODULESPATH.$modules.'/models/'.$class.'_model.php',$model_str)){
            echo MODULESPATH.$modules.'/models/'.$class.'_model.php'."：文件生成成功!<br/>";
        }else{
            echo MODULESPATH.$modules.'/models/'.$class.'_model.php'."：文件生成失败!文件不可写或者已经存在。请复制以下内容手动创建。<br/><textarea>$model_str</textarea><br/>";
        }

        //echo "生成模块$modules/$class";
    }
    /**
     * 生成默认模块，包括控制器，模型。
     * @param $modules
     * @param $class
     */
    public function generate_controller($modules,$class){
        $data = array(
            'Controller_name' => $class,
        );
        $controller_str = $this->load->view('sdf_gii/sdf_gii_controller_template', $data, true);
        if(is_writable(MODULESPATH.$modules.'/controllers/') and !is_file(MODULESPATH.$modules.'/controllers/'.$class.'.php') and file_put_contents(MODULESPATH.$modules.'/controllers/'.$class.'.php',$controller_str)){
            echo MODULESPATH.$modules.'/controllers/'.$class.'.php'."：文件生成成功!<br/>";
        }else{
            echo MODULESPATH.$modules.'/controllers/'.$class.'.php'."：文件生成失败!文件不可写或者已经存在。请复制以下内容手动创建。<br/><textarea>$controller_str</textarea><br/>";
        }

        echo "生成模块$modules/$class";
    }
    /**
     * 生成插件目录结构
     * @param $modules 插件英文名
     */
    public function generate_modules($modules){
        if(is_writable(MODULESPATH) and !empty($modules)){
            $generate_dirs = array('config','controllers','helpers','language','libraries','models','views');
            foreach($generate_dirs as $d){
                $dirname = MODULESPATH.$modules.'/'.$d;
                if(!is_dir($dirname) and mkdir($dirname,0777,TRUE)){
                    echo $dirname.':生成成功！<br/>';
                }else{
                    echo $dirname.':生成失败或已经存在！<br/>';
                }
            }
            //file_put_contents(MODULESPATH.$modules.'/.htaccess','Deny from all');
            if( !is_file(MODULESPATH.$modules.'/.htaccess') and copy(MODULESPATH.'.htaccess',MODULESPATH.$modules.'/.htaccess')) {
                echo MODULESPATH.$modules.'/.htaccess'.'copy成功！<br/>';
            }else{
                echo MODULESPATH.$modules.'/.htaccess'.' copy失败或者已经存在！<br/>';
            }
            if( !is_file(MODULESPATH.$modules.'/index.html') and copy(MODULESPATH.'index.html',MODULESPATH.$modules.'/index.html')) {
                echo MODULESPATH.$modules.'/index.html'.' copy成功！<br/>';
            }else{
                echo MODULESPATH.$modules.'/index.html'.' copy失败或者已经存在！<br/>';
            }

        }else{
            echo MODULESPATH.'不可写！无法生成，请手动生成插件目录结构。';
        }
    }
}

/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */